home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Magazine / C_Tutorial / Part-6 / asl2 / main.c < prev    next >
C/C++ Source or Header  |  1997-10-27  |  2KB  |  116 lines

  1. #include<exec/libraries.h>
  2.  
  3. #include<stdio.h>
  4.  
  5. #include<clib/exec_protos.h>
  6.  
  7. #include "bitmap.h"
  8. #include "drawwin.h"
  9. #include "gadgets.h"
  10. #include "idcmp.h"
  11. #include "loadsave.h"
  12. #include "menu.h"
  13. #include "screen.h"
  14. #include "toolwin.h"
  15. #include "visual.h"
  16.  
  17. /* The library base global variables */
  18. /* (The different style of opening libraries requires these to be initialised to NULL) */
  19. struct Library* GfxBase = NULL;
  20. struct Library* IntuitionBase = NULL;
  21. struct Library* GadToolsBase = NULL;
  22. struct Library* AslBase = NULL;
  23. struct Library* DosBase = NULL;
  24. struct Library* IFFBase = NULL;
  25.  
  26. /* Need to give prototypes for our functions */
  27. int  createAll(void);
  28. void freeAll(void);
  29. int  openLibs(void);
  30. void closeLibs(void);
  31.  
  32. /* The initial screen depth */
  33. #define SCR_DEPTH (4)
  34.  
  35. /* The start of the program */
  36. void main()
  37. {
  38.     if(createAll())
  39.         handleIDCMP();
  40.     freeAll();
  41. }
  42.  
  43. int createAll()
  44. {
  45.     return openLibs() && openScreen(SCR_DEPTH,0,0,0) &&
  46.                  createBitmap() && createVisual() &&
  47.                  createMenuStrip() && createGadgets() &&
  48.                  openToolWin() && openDrawWin();
  49. }
  50.  
  51. void freeAll()
  52. {
  53.     freeReqs();
  54.     closeDrawWin();
  55.     closeToolWin();
  56.     freeGadgets();
  57.     freeMenuStrip();
  58.     freeVisual();
  59.     freeBitmap();
  60.     closeScreen();
  61.     closeLibs();
  62. }
  63.  
  64. /* Try to open all the libraries -- return TRUE on success */
  65. int openLibs()
  66. {
  67.     if((GfxBase = OpenLibrary("graphics.library",37)) == NULL)
  68.     {
  69.         printf("Error: could not open graphics.library\n");
  70.         return FALSE;
  71.     }
  72.     if((IntuitionBase = OpenLibrary("intuition.library",37)) == NULL)
  73.     {
  74.         printf("Error: could not open intuition.library\n");
  75.         return FALSE;
  76.     }
  77.     if((GadToolsBase = OpenLibrary("gadtools.library",37)) == NULL)
  78.     {
  79.         printf("Error: could not open gadtools.library\n");
  80.         return FALSE;
  81.     }
  82.     if((AslBase = OpenLibrary("asl.library",37)) == NULL)
  83.     {
  84.         printf("Error: could not open asl.library\n");
  85.         return FALSE;
  86.     }
  87.     if((DosBase = OpenLibrary("dos.library",37)) == NULL)
  88.     {
  89.         printf("Error: could not open dos.library\n");
  90.         return FALSE;
  91.     }
  92.     if((IFFBase = OpenLibrary("iff.library",23)) == NULL)
  93.     {
  94.         printf("Error: could not open iff.library\n");
  95.         return FALSE;
  96.     }
  97.   return TRUE;
  98. }
  99.  
  100. /* Close any open library */
  101. void closeLibs()
  102. {
  103.     if(IFFBase)
  104.         CloseLibrary(IFFBase);
  105.     if(DosBase)
  106.         CloseLibrary(DosBase);
  107.     if(AslBase)
  108.         CloseLibrary(AslBase);
  109.     if(GadToolsBase)
  110.         CloseLibrary(GadToolsBase);
  111.     if(IntuitionBase)
  112.         CloseLibrary(IntuitionBase);
  113.     if(GfxBase)
  114.         CloseLibrary(GfxBase);
  115. }
  116.